The present invention relates to a storage device. More particular, embodiments of the present invention relate to a flash memory based storage device and error-correction techniques for improving performance.
Non-volatile memory devices such as Solid State Drives (SSDs) are finding new applications in consumer electronics. For example, they are replacing Hard Disk Drives (HDDs), which typically comprise rapidly rotating disks (platters). Non-volatile memories, sometimes referred to as ‘flash memories’ (for example, NAND and NOR flash devices), are used in media storage, cameras, mobile phones, mobile computers, laptop computers, USB flash drives, etc. A non-volatile memory provides a relatively reliable, compact, cost-effective, and easily accessible means of storing data when its power supply is off.
Flash memory controllers are used to manage the data stored in the non-volatile memory, and to act as an interface between a host and the non-volatile memory. In general, a flash memory controller decodes data read from a flash memory and attempts to correct errors in the read data. If the flash memory controller cannot correct the errors, it will send a request for read retry by sending a next threshold voltage to the flash memory. The read retry process will continue until the flash memory controller can receive error-free data or data with correctable errors. However, data transfer between a flash memory controller and a flash memory consumes resources (bandwidth, power) and is time intensive.
Thus, there is a need to provide an improved way to reduce data traffic between a flash memory controller and a non-volatile flash memory.